Peer-to-Peer (P2P) is an in-line service applicable for 3GPP and 3GPP2 networks. P2P utilizes the Enhanced Charging Service (ECS) functionality. For information about ECS, refer to the
Enhanced Charging Services Administration Guide.
The System Administration Guide provides basic system configuration information, and the product administration guides provide procedures to configure basic functionality of core network service. It is recommended that you select the configuration example that best meets your service model, and configure the required elements for that model, as described in the respective product Administration Guide, before using the procedures in this chapter.
Peer-to-Peer is a licensed feature, requiring the [600-00-7605] Peer-to-Peer Detection Bundle 1k Sessions license. For information on core network licenses and other requirements please contact your local sales representative.
Peer-to-Peer (P2P) is a term used in two slightly different contexts. At a functional level, it means protocols that interact in a peering manner, in contrast to client-server manner. There is no clear differentiation between the function of one node or another. Any node can function as a client, a server, or both—a protocol may not clearly differentiate between the two. For example, peering exchanges may simultaneously include client and server functionality, sending and receiving information.
Detecting peer-to-peer protocols requires recognizing, in real time, some uniquely identifying characteristic of the protocols. Typical packet classification only requires information uniquely typed in the packet header of packets of the stream(s) running the particular protocol to be identified. In fact, many peer-to-peer protocols can be detected by simple packet header inspection. However, some P2P protocols are different, preventing detection in the traditional manner. This is designed into some P2P protocols to purposely avoid detection. The creators of these protocols purposely do not publish specifications. A small class of P2P protocols is stealthier and more challenging to detect. For some protocols no set of fixed markers can be identified with confidence as unique to the protocol.
Operators care about P2P traffic because of the behavior of some P2P applications (for example, Bittorrent, Skype, and eDonkey). Most P2P applications can hog the network bandwidth such that 20% P2P users can generate as much as traffic generated by the rest 80% non-P2P users. This can result into a situation where non-P2P users may not get enough network bandwidth for their legitimate use because of excess usage of bandwidth by the P2P users. Network operators need to have dynamic network bandwidth / traffic management functions in place to ensure fair distributions of the network bandwidth among all the users. And this would include identifying P2P traffic in the network and applying appropriate controlling functions to the same (for example, content-based premium billing, QoS modifications, and other similar treatments).
Starent Networks' P2P detection technology makes use of innovative and highly accurate protocol behavioral detection techniques. Starent Networks' P2P solution can detect the following protocols and their capabilities in real time:
P2P traffic detection is tricky because most of the P2P protocol details are proprietary, and the protocol characteristics change frequently. As these P2P standards are proprietary, there is a tight coupling between the peers too (all the peers need to understand the protocols). Since P2P detection depends heavily on the known traffic characteristics the detection can suffer if the P2P protocol changes, if some existing traffic characteristics were not known (new use case scenarios), if one P2P traffic characteristic matches with another P2P traffic (false positives), and if there are flaws (bugs) in the detection logic. Whenever such degradation in P2P detection logic is identified, the P2P detection engine needs to be fine tuned or enhanced further to improve the detection accuracy.
In the earlier releases, the P2P detection logic was part of the ST-chassis software load (ST16/ST40 software), to continue to detect new traffic patterns based on the changing traffic characteristics, operators needed to upgrade the complete software with the updated logic.
This release supports dynamic upgrades of the P2P detection logic (signatures) alone on an active ST16/ST40 without warranting a full software upgrade, and hence without a software restart or reboot. This is implemented through signature files.
In an initial software build, all the detection logic is embedded in the code. If in a subsequent software build, there are updates to the detection logic, the changes are made available as a P2P signature file. If the initial build supports the Dynamic Signature Updates feature, this signature file can be loaded on the system to update the detection capability.
In case a P2P signature file is already available for a software build, when the build is loaded on the system, it will be available at the default location. If a different P2P signature file is manually loaded on that system, every time the system reboots, both the versions are checked and the latest version is loaded.
A P2P signature file can support upgrade for multiple P2P protocols that are enabled for dynamic upgrade. Operators can selectively upgrade the detection for specific protocol(s). Patches can be rolled down with out any negative impact to the system. If an incorrect signature file is loaded by mistake, the version information in signature file will not match the current protocol detection version and the system will not be affected.
Starent Networks’ provides signature files on a need basis, or periodically whenever a new P2P detection software version is integrated with the software. A signature file can contain the rules for several protocols. The P2P signature file is packaged as a delivery kit for release.
Every released signature file has a file version. This version number is used to determine which file is the latest and newest to load during upgrade or reboot. On the boxer, the signature file version and the syntax is validated, in case of failure, the signatures will not be loaded into memory.
Disabling the P2P Dynamic Update feature instructs the system not to load and apply the signature files. An already loaded signature file can be unloaded (removed) from the system’s memory too.
Operators can load P2P signature files present in the system’s Flash directory from the CLI. A P2P signature file loaded from the Flash directory must always be available in the Flash directory. In this case, based on the signature files’ version numbers the P2P engine loads the latest file available between the default location and the Flash directory.
If for some reason an older version of signature file must be loaded, from the CLI, it can be loaded forcefully to the boxer. In this case, the P2P engine will load the specified file without checking the version number.
Loading of rules is a two-stage process. First, from the signature file the signatures are loaded to all the Session Managers (SessMgrs). Once all the SessMgrs are able to parse the signatures successfully, the signatures are activated. If any SessMgr reports failure in parsing the signatures, the activation will not be done. A deactivate message will be sent to the managers so that any SessMgrs that successfully parsed the signatures will unload them.
There can only be a maximum of two signature files loaded on the system’s memory at any point of time. If a loaded signature file has active calls, and the operator loads a newer version of the rule file, the older file will be removed from the memory once all the calls referring to it have ended. All calls generated after loading the new file will use the newer file.
Considering the memory used for loading the signature files, the number of active versions that can be loaded is restricted to two. Suppose we currently have a patch D1 loaded and running, and have an update D2. After loading D2 in memory, D1 will still be active in memory because there may be some call lines using this version. Loading a new patch D3 has to wait till D1 is removed from the memory.
When a signature file is unloaded from the CLI, the SessCtrl sends request to all the SessMgrs to unload the file from memory. The SessMgr maintains the reference count for the version loaded into the memory. If the reference count is zero, the rules are deleted from the memory. If there are some sessions using the version to be unloaded, the version is marked for unloading. When there are no references to the version, it is deleted from the memory.
P2P interfaces to a PCRF Diameter Gx interface to accept policy ACLs and rulebases from a PDF. P2P supports real-time dynamic policy updates during a subscriber session. This includes modifying the subscriber’s policy rules during an active session by way of:
In Rel. 7 Gx interface, a Charging Rulebase will be treated as a group of ruledefs. A group of ruledefs enables grouping rules into categories, so that charging systems can base the charging policy on the category. When a request contains names of several Charging Rulebases, groups of ruledefs of the corresponding names are activated. For P2P rules to work in the group of ruledefs, P2P detection has to be enabled in the rulebase statically.
Static policy is supported initially. A default subscriber profile is assumed and can be overwritten on the gateway. Per-subscriber static policy is pulled by the gateway from the AAA service at subscriber authentication.
Intra-chassis session recovery support is achieved by mirroring the SessMgr and AAAMgr processes. The SessMgrs are paired one-to-one with the AAAMgrs. The SessMgr sends checkpointed session information to the AAAMgr. ACS recovery is accomplished using this checkpointed information.
When a SessMgr failure occurs, recovery is performed using the mirrored “standby-mode” SessMgr task running on the active PAC/PSC. The “standby-mode” task is renamed, made active, and is then populated using checkpointed session information from the AAAMgr task. A new “standby-mode” SessMgr is created.
When a PAC/PSC hardware failure occurs, or when a planned PAC/PSC migration fails, the standby PAC/PSC is made active and the “standby-mode” SessMgr and AAAMgr tasks on the newly activated PAC/PSC perform session recovery.
Most P2P protocols emit these patterns regularly (sometimes as early as the next flow created by the application). When the system sees the pattern again, it re-learns the subscriber state and starts detecting the protocol.